This invention relates to peer to peer transport services provided by routers or switches, etc. in a computer network, and more particularly to directory services provided for peer entities.
A router can provide peer to peer services for routing packets on a computer network. For example, a router, which is generally a layer 3 switching device since it depends upon the IP destination address for routing decisions, may provide layer 2 switching service such as DLSw switching. DLSw switching is an example of peer to peer services provided by a router.
An example of peer-to-peer routing is the Advanced Peer to Peer Network (APPN) method developed by IBM Corporation. The APPN system developed from an earlier system having a mainframe computer controlling all networking functions, including route computations. The mainframe connects to xe2x80x9cnodes,xe2x80x9d and the nodes connect to terminals, either directly or indirectly through terminal controllers. Packets were routed through the network of nodes by source routing, where the mainframe computer computed the path for source routing. In APPN, a group of nodes are defined as xe2x80x9cpeerxe2x80x9d nodes. Links are established between the peer nodes, for example by leased telephone lines, etc. End stations are attached to peer nodes, either directly or indirectly through xe2x80x9cterminal controllersxe2x80x9d. Those end stations attached to a peer node are said to be in the xe2x80x9cdomainxe2x80x9d of the peer node. The SNA architecture is described by Andrew Tanenbaum in his book Computer Networks Second Edition, published by Prentice Hall Publishing Co., Copyright 1988, all disclosures of which are incorporated herein by reference, especially pages 46-47. When a source logical unit in a source station decides to set up a xe2x80x9cconversationxe2x80x9d with a xe2x80x9cdestination logical unitxe2x80x9d in another station, the peer node whose domain the source end station is in computes a route through other peer nodes and links of the APPN system. The first end station then addresses its packets for the conversation by means of the route computed by the peer node. The packet travels through the APPN network as a source routed packet as it travels along the computed route. In computing the route, the peer node makes use of a database of peer nodes, links, characteristics of links, and available logical units. The peer node then computes an optimum route, with the optimum being dependent upon route characteristics requested by the source end station. When a packet arrives at a peer node for routing to a destination station, no decision about identifying the protocol of the packet need be made, as all packets are under the same protocol, the APPN protocol. Each node in the APPN network may keep a cache of a Directory Database for locating peer nodes, as explained by Jesper Nilausen in his book APPN Networks, published by John Wiley and Sons, Copyright 1994, all disclosures of which are incorporated herein by reference, especially pages 43-50. Problems with directory databases cached in each node arise when many nodes broadcast to find the same end station, and the consequent use of considerable network bandwidth for redundant searches.
A further example of peer to peer routing services comprises DLSw, or Data Link Switching, as defined in RFC 1795 published by the Internet Engineering Task Force in April 1995, and available from the Web Site at URL www.ietf.org. All disclosures of RFC 1795 are incorporated herein by reference.
In the DLSw peer to peer example, when a router receives a packet, the router determines whether the packet is to be forwarded by DLSw protocol. For example, the router may have local area networks (LANs) using a variety of protocols connected thereto, and the router must determine the protocol of the packet. The router determines the protocol of the packet by identifying the port on which the packet arrived at the router, by reading fields of the packet at various offsets from the beginning of the packet, etc. In the event that the router determines that the packet is to be forwarded by DLSw protocol, the packet is encapsulated with a SSP header (as defined in RFC 1795), a cyclic redundancy check (CRC) trailer field, and some other fields. The encapsulated packet is then transmitted over a TCP/IP connection to a peer router, which also provides DLSw service. The TCP/IP connection is established through a network xe2x80x9ccloudxe2x80x9d potentially having many routers providing DLSw service connected thereto.
A router providing DLSw service is referred to herein as a xe2x80x9cDLSw routerxe2x80x9d. The DLSw service is referred to as xe2x80x9cDLSw switchingxe2x80x9d, as the service occurs in layer 2 of the Internet Protocol.
In some networks, a DLSw router may be connected to only one LAN, for example a source routing bridged (SRB) network based on IEEE 802.5 token rings and bridges. Packets received by the DLSw router from the SRB network may all be routed using the DLSw protocol. In other networks, a router may have a port connected to an IEEE 802.5 token ring, may have another port connected to an IEEE 802.3 Ethernet LAN, an FDDI token ring LAN, etc. An IEEE 802.5 token ring may have packets transmitted thereon under SNA protocol, and addressing of SNA packets to the destination station is in layer 2 fields. An IEEE 802.3 Ethernet packet has addressing to the destination station in layer 2 and in layer 3 fields. Also, packets transmitted under TCP/IP protocol have addressing to the next hop router in layer 2, and to the destination station in the layer 3 IP destination address field, etc. The router receiving packets from a variety of LAN technologies and LAN protocols reads the address fields and makes routing decisions. In the event that a packet is routed from a first LAN using a protocol which is incompatible with the protocol of the next LAN, then the router must re-build the packet before transmitting the packet onto the next LAN. For some packets, the decision is to route the packets by DLSw switching.
In the event that the routing decision is to route a packet by DLSw switching, then a router on the same LAN as the source end station, hereinafter the xe2x80x9csource LANxe2x80x9d and the xe2x80x9csource routerxe2x80x9d, finds a peer router (hereinafter the xe2x80x9cdestination routerxe2x80x9d) offering DLSw service, where the destination router can reach the destination end station. The destination router is ordinarily connected to the same LAN as is the destination end station, hereinafter the destination LAN. The source router must identify the proper peer router to serve as the destination router.
Routers offering DLSw service transfer encapsulated packets between themselves using TCP/IP protocol through a network cloud, and they are referred to as xe2x80x9cpeer DLSw routersxe2x80x9d. There may be many, for example, a few hundred peer DLSw routers communicating through a TCP/IP network cloud, and for a further example, there may be several thousand. A source DLSw router that receives a packet from an end station and makes a routing decision that this packet is to be encapsulated and routed under DLSw protocol must select the proper destination DLSw router. The source router then places the destination router address in the proper fields of a TCP/IP packet so that the selected destination DLSw router receives the encapsulated packet through the TCP/IP network cloud. Upon receipt of the encapsulated packet by the destination DLSw router, the destination DLSw router removes the encapsulation and transmits the packet onto the proper LAN so that the destination end station can receive the packet.
Selection of the destination router by the source router is ordinarily accomplished by the source router first checking an internal cache (hereinafter the DLSw cache) in order to learn if it already knows the proper destination router for the destination end station specified by the destination address of the packet. In the event that the DLSw cache in the source router does not have the necessary information, the source router then transmits a xe2x80x9cCANUREACHxe2x80x9d message to each of its DLSw router peers, as defined in RFC 1795. The CANUREACH message includes the address of the destination end station in an appropriate field, and any router receiving the message then checks its routing tables in order to determine if the router is connected to a LAN also connected to the destination end station. In the event that a router receiving the CANUREACH message determines that the destination end station is absent from its routing tables, then the router transmits a xe2x80x9csearch messagexe2x80x9d.
A search message is transmitted by the router receiving the CANUREACH message onto all of the LANs connected to the router in order to look for the destination end station. For example, in the event that the Destination End Station uses SNA protocol, the search message is a LLC1 TEST FRAME; as a further example, in the event that the Destination End Station uses NetBios protocol, the search message is a NetBios NAME QUERY, NET_BIOS_NQ frame, etc. The end station, after receiving a search message, responds to the router transmitting the search message with a xe2x80x9cresponse messagexe2x80x9d. A response message, for example when the Destination End Station uses SNA protocol, is a LLC1 TEST_RESPONSE message; as a further example, in the event that the Destination End Station uses NetBios protocol the response message is a NAME_RECOGNIZED, NETBIOS_NR frame, etc.
Upon receipt of the response message, the router updates its routing tables with the address of the sought after destination end station. In the event that a peer DLSw router determines that it can reach the destination end station, then that DLSw router sends an xe2x80x9cICANREACHxe2x80x9d message (as defined in RFC 1795) to the source router. The source router receives the ICANREACH message and thereby identifies that peer DLSw router as the destination router. The source router uses the address of the identified destination router to both: build the SSP header in order to address the encapsulated packet to the destination router; and, to populate its DLSw cache so that in the event that the source router receives another packet addressed to the same destination end station, it can learn the proper destination router simply by its first action of checking its DLSw cache.
A first problem in the above method of a source router finding a peer DLSw router to identify as the destination router is that with hundreds of peer DLSw routers, the overhead in transmitting CANUREACH messages occupies too much network bandwidth. A second problem is inefficiency of operation, in that if one router locates the proper destination router for a particular destination end station, then in the event that a second router receives a packet addressed to the same destination end station, the second router must go through the full CANUREACH protocol as the routers do not share their DLSw cache contents. A third problem is that a DLSw cache entry must be timed out fairly quickly, in the order of 10 minutes to an hour, in order to have fresh data in the cache as network conditions change, that is, as routers fail, network links fail, new links are established, etc. Timing out of the various DLSw caches in the various peer routers results in even more network bandwidth being devoted to CANUREACH messages, ICANREACH messages, and request and response messages onto local LANs looking for an end station, by the various peer routers. A fourth problem in commonly used design practice of routers is that there is no limit set on the number of entries in the local reachability cache. No limits are set because it is desirable to have a destination address in the local reachability cache in order to avoid a broadcast of CANUREACH messages. In the event that the reachability cache grows large, the cache may hog too much memory of the router.
The problem of too much overhead being used in transmitting CANUREACH messages by DLSw routers asking their peer routers to locate a desired destination address is solved by a new directory service for peer routers.
The new directory service is established for a peer router receiving a data packet from an end station on a local area network connected to a port of the peer router, the receiving peer router hereinafter being referred to as the source router. The data packet is to addressed to a destination address. The source router determines that the data packet is to be encapsulated as an encapsulated packet, and the encapsulated packet routed by a peer to-peer protocol to a destination router. The destination router then transmits the packet onto a local area network to the destination address. The source router locates the proper peer destination router by use of the new database. The database is maintained on a server, where the database has entries for destination address, and an entry for a particular destination address gives the address of one or more peer routers capable of routing a packet to that particular destination address. The database is populated by peer routers updating the database with information concerning the destination address which the peer routers can reach. The database on the server is interrogated by the source router to learn the address of a destination peer router. An encapsulated packet is then addressed by the source router to the destination peer router, and the encapsulated packet is transmitted onto a connectionless, but connection-oriented, network for routing to the destination peer router. The connection-oriented protocol employed may be conveniently the TCP/IP protocol.
The database may be accessed with a lightweight data access protocol (LDAP). The peer-to-peer routing protocol may be DLSw protocol. Data frames transmitted by DLSw protocol are encapsulated with an SSP header for transmission by TCP/IP protocol from the source router to the destination router. The encapsulated packet is received by the destination router, de-encapsulated, and transmitted by the destination router as a destination packet onto a local area network having the destination address connected thereto, and the destination packet is addressed to the destination address. The database may be maintained in accordance with the X.500 directory standard. The database may be interrogated using the lightweight data access protocol (LDAP).
Other and further aspects of the present invention will become apparent during the course of the following description and by reference to the accompanying drawings.